一直以來只知道如何引用
.dll
,但卻不明白Visual Studio產生的另外兩個副檔名為.pdb
和.refresh
是在幹嘛用的,這次把網路上找的資源整理貼上紀錄。
.dll是包含程式碼和資料的函式庫,它不是一個獨立的程式,不能夠自己運行,它是向其他程式提供服務的一段程式碼。
實務面上,會把多個專案共用的method或class提出來,並編譯成.dll後,有需要用到的專案再去將它引用進自己的專案,以此達到程式碼的重用性和可維護性。
當你用Visual Studio建立一個class時,你在build專案的同時,會自動產生在C:\\專案\bin\Debug\
的目錄下
其實這就很像平常在寫程式,將重複的code提出來並包裝,讓需要用到這段method的部分,都去呼叫它,只是用不同的規則來運作。
這個檔案也是隨著build的同時和.dll產生在同一個目錄下。
主要在儲存.dll內的區域變數名稱、行數、檔案名稱,而這檔案是在debug時,用來告訴你目前對應到的程式碼行數和變數位置。
當引用了一個外部的.dll,會自動產生一個.refresh,這個檔案實際上是J個.dll的絕對路徑,當引用的.dll更新程式碼,引用的專案也會自動更新。
這邊有做個驗證,用的是Visual Studio 2012版
首先建立一個.dll
namespace dllTest
{
public class Test
{
public double add(double first, double second)
{
return first + second;
}
}
}
引用的專案
Test aTest = new Test();
aTest.add(1, 2);
這時候更改.dll
namespace dllTest
{
public class Test
{
public double _first;
public double _second;
public double add(double first, double second)
{
return first + second;
}
}
}
此時引用的專案需要直接run起來,它才會去比對兩邊的guid是否一致
Test aTest = new Test();
aTest.add(1, 2);
aTest._first = 20; //不需要重新引用.dll,即獲得更新後的程式碼。